package cn.car.service;

import cn.car.domains.bo.QueryPermissionBo;
import cn.car.domains.entity.SysPermissionEntity;
import java.util.List;

public interface SysPermissionService {
    /**
     * 新增权限
     * @param permission 权限实体
     * @return 新增成功的权限ID
     */
    Long addPermission(SysPermissionEntity permission);

    /**
     * 根据ID查询权限
     * @param id 权限ID
     * @return 权限实体
     */
    SysPermissionEntity getPermissionById(Long id);

    /**
     * 根据权限名查询权限
     * @param permissionCode 权限名
     * @return 权限实体
     */
    SysPermissionEntity getPermissionByCode(String permissionCode);

    /**
     * 更新权限
     * @param permission 权限实体（必须包含ID）
     */
    void updatePermission(SysPermissionEntity permission);

    /**
     * 根据ID删除权限
     * @param id 权限ID
     */
    void deletePermission(Long id);

    /**
     * 查询权限列表
     */
    List<SysPermissionEntity> list(QueryPermissionBo query);
}

